<?php

/**
 * This is the model class for table "productos".
 *
 * The followings are the available columns in table 'productos':
 * @property integer $IDPRODUCTO
 * @property string $FECHA
 * @property integer $IDUSUARIO
 * @property integer $IDProveedor
 * @property integer $TipoES
 * @property integer $IDEmpleado
 * @property integer $FACTURA
 *
 * The followings are the available model relations:
 * @property Detproducto[] $detproductos
 * @property Empleados $iDEmpleado
 * @property Usuario $iDUSUARIO
 * @property Proveedores $iDProveedor
 */
class Productos extends CActiveRecord
{
	public $usuario;
	public $empleado;
	public $proveedor;

	/**
	 * Returns the static model of the specified AR class.
	 * @param string $className active record class name.
	 * @return Productos the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'productos';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('IDPRODUCTO, FECHA, IDUSUARIO, IDProveedor, TipoES, IDEmpleado', 'required'),
			array('IDPRODUCTO, IDUSUARIO, IDProveedor, TipoES, IDEmpleado, FACTURA', 'numerical', 'integerOnly'=>true),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('IDPRODUCTO, FECHA, IDUSUARIO, IDProveedor, TipoES, IDEmpleado, FACTURA, usuario, empleado, proveedor', 'safe', 'on'=>'search'),
		);
	}

	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
			'detproductos' => array(self::HAS_MANY, 'Detproducto', 'IDPRODUCTO'),
			'iDEmpleado' => array(self::BELONGS_TO, 'Empleados', 'IDEmpleado'),
			'iDUSUARIO' => array(self::BELONGS_TO, 'Usuario', 'IDUSUARIO'),
			'iDProveedor' => array(self::BELONGS_TO, 'Proveedores', 'IDProveedor'),
		);
	}

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'IDPRODUCTO' => '# Registro',
			'FECHA' => 'Fecha',
			'IDUSUARIO' => '# Usuario',
			'IDProveedor' => '# Proveedor',
			'TipoES' => 'Tipo Es',
			'IDEmpleado' => '# Empleado',
			'FACTURA' => 'Factura',
			'empleado' => 'Empleado',
			'usuario'=> 'Usuario',
			'proveedor'=>'Proveedor',
		);
	}

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.

		$criteria=new CDbCriteria;

		$criteria->with = array('iDEmpleado','iDProveedor','iDUSUARIO');
        $criteria->addSearchCondition('iDUSUARIO.NOMBRE', $this->usuario);
        $criteria->addSearchCondition('iDProveedor.NOMBRE', $this->proveedor);
		$criteria->addSearchCondition('iDEmpleado.NOMBRE', $this->empleado);

		$criteria->compare('IDPRODUCTO',$this->IDPRODUCTO);
		$criteria->compare('FECHA',$this->FECHA,true);
		$criteria->compare('IDUSUARIO',$this->IDUSUARIO,true);
		$criteria->compare('IDProveedor',$this->IDProveedor,true);
		$criteria->compare('TipoES',$this->TipoES,true);
		$criteria->compare('IDEmpleado',$this->IDEmpleado,true);
		$criteria->compare('FACTURA',$this->FACTURA,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
}